1. Field of the Invention
The present invention relates to a method for processing and forwarding data packets using at least one route table.
2. Description of the Prior Art
The current standard architecture for a data packet router in a computer network comprises a packet classification module, a routing module and a packet scheduler module. As a first step, an incoming data packet is assigned a class by the classification module and possibly also predefined processing is applied to it, such as checking the source address, changing or adding some header fields, decrementing the time-to-live (TTL) field, dropping it if the TTL value reaches 0 etc. As a second step, the routing module uses the resulting class and packet header to evaluate the packet's further route. For this purpose it contains a forwarding information base which usually has the form of a route table and merely serves as “signpost” for the data packets to be transmitted. Next, additional processing may apply to the packet, before the packet is put, as a third main step, in at least one packet queue that is controlled by the packet scheduler. Streamlined variants of the above process exist, where a packet is directly copied from the incoming network interface card that may have its own forwarding information base to an outgoing interface card.
This standard procedure, the so-called “fast data path” of a router, is illustrated in FIG. 1. Whereas the route table, i.e. the “signpost” for data packets, can be dynamically updated, the procedure itself is a static pipeline operating on incoming data packets. The set of instructions applied to a packet is rather limited and predetermined by the packet's type (class). Reconfiguration of a data router, e.g. said updating of the route table, is achieved by special purpose “signaling” protocols. Data packets that belong to such a protocol are removed from the fast data path and are passed to external processing modules capable of handling the signaling protocol.
Active networks add programmability to a router while still adhering to the same architecture (see FIG. 2): The router hosts one or more execution entities EEi to EEn which are responsible for interpreting program instructions contained in “active packets”, namely data packets that themselves contain the program to be applied to them, or other signaling information.
At a high level of abstraction, the control flow for a single packet inside a traditional and possibly active router in this standard approach can be depicted as shown in FIG. 3. A program store drives the Central Processing Unit (CPU) and the CPU reads from the route table for making routing decisions. Accessing the route table is necessary for almost every data packet that enters the system. Actual routers may have multiple CPUs, program and data stores.
If a whole classical routing system is regarded from the data flow architecture point of view, it represents an example of the data flow model: Data items are processed by stationary instructions. This is in contrast to the “von Neumann” computing model which is the dominant model for traditional computing. The “von Neumann” model is characterized by one or more control flows in motion that operate on data residing in explicitly addressed memory places.